Network management applications are used to configure and monitor voice and data networking hardware. Typically, a network management station (NMS) communicates with an entity in the device referred to as an agent to obtain and configure various parameters. This agent is comprised of software that is running on an embedded device microprocessor (internal to the networking hardware). The NMS typically communicates with the agent using a transport mechanism such as the simple network management protocol (SNMP) to monitor and configure the attributes of the device.
The parameters that an agent can control are described in a management information base (MIB). Each entry in the MIB describes some attribute the agent can control, what the limitations there are for an attribute and how that attribute can be manipulated and accessed. As more functionality is added to the device over time, more support features are added to the agent and subsequently each of these attributes are typically added to the MIB.
As new functionality is added to the agent and the device, the functionality of the NMS must also be extended to include these new features. Typically, the developers of the NMS hardcode the parameters supported by a device. As more features and parameters are added to a device, the agent is extended and so to is the NMS software. A significant problem arises when an NMS must be developed to support all revisions of agent software for several customers. To support such a large contrast of devices and agent software revisions, the NMS must determine the agent type and software version and based upon that knowledge, the NMS typically uses complex hard coded logic to assess the application of various parameters. This creates a complex application that is difficult to debug, costly to maintain and not simply extended to support new devices or new features.